水平居中
inline/inline-*
- 父级是块级元素,
text-align:center;
块级元素
方式一:子元素
width+margin-left/right:auto;方式二:inline-block,父级
text-align:center,子元素display:inline-block;方式三:flexbox,父级
display:flex+justify-content:center;
垂直居中
inline/inline-*
单行
- 方式一:
padding-top和padding-bottom相同; - 方式二:
height和line-height相同,white-space: nowrap;
- 方式一:
多行
- 方式一:利用
table+td,td设置vertical-align: middle; - 方式二:父级
display: table,子元素display: table-cell+vertical-align: middle; - 方式三:flexbox,
display: flex+justify-content: center+flex-direction: column; - 方式四:flexbox,
display: flex+align-items: center;
- 方式一:利用
块级元素
- 已知
height- 父级
position: relative; - 子元素
position: absolute+top: 50%+margin-top:-1/2*height;
- 父级
- 未知
height- 父级
position: relative; - 子元素
position: absolute+top: 50%+transform: translateY(-50%);
- 父级
- 同
垂直居中中inline/inline-*的多行; - 使用
grid;
